/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import javax.swing.JComboBox;


public class SucursalModelo {

  ConexionModelo conexion=new ConexionModelo();
	private transient Connection con;
	ResultSet rs;



      public LinkedList consultaSucursalesTabla(String consulta,int tipo)throws SQLException{
          if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }
     //parametros consulta sucursales: no tiene parametros definidos como tal, solo un parametro
	LinkedList listaSucur=new LinkedList();
	PreparedStatement pstmt=null;
	ResultSet rs=null;
  	try{
            if (consulta.equals(""))
  		pstmt=con.prepareStatement("select * from Sucursal");
            else
                if (tipo==1)
                    pstmt=con.prepareStatement("select * from sucursal where codigo like '%"+ consulta + "%'");//probando
                else if(tipo==2)
                    pstmt=con.prepareStatement("select * from sucursal where ciudad  like '%"+ consulta + "%'");//probando

                rs=pstmt.executeQuery();
  		while(rs.next()){
  			listaSucur.add(Sucursal.load(rs));
  		}

  	}finally{
 		if(rs!=null){
			rs.close();
		}
		if(pstmt!=null){
			pstmt.close();
			pstmt=null;
		}
	}

	return listaSucur;
 }

    public void setNuevaSucursal(Sucursal suc) throws SQLException {// insertar datos a la base de datos
        if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

        PreparedStatement pstmt=null;
        try{

                pstmt=con.prepareStatement("insert into sucursal values(?,?,?,?,?,?,?,?)");
                pstmt.setString(1,  suc.getCodigo());
                pstmt.setString(2,  suc.getCiudad());
                pstmt.setString(3,  suc.getCedulaGerente());
                pstmt.setString(4,  suc.getNombreGerente());
                pstmt.setString(5,  suc.getApellidoGerente());
                pstmt.setString(6,  suc.getDireccionGerente());
                pstmt.setString(7,  suc.getTelefonoGerente());
                pstmt.setBoolean(8, suc.getEstado());
		pstmt.executeUpdate();

                }finally{
                  if( pstmt!=null )
                  pstmt.close();
        }
    }

        public void actualizarSucursal(Sucursal suc,String consulta) throws SQLException {// insertar datos a la base de datos
          if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

        PreparedStatement pstmt=    null;
        try{

                pstmt=con.prepareStatement("update sucursal set "
                        + "codigo='" + suc.getCodigo() + "',"
                        + "ciudad='" + suc.getCiudad() + "',"
                        + "cedula='" + suc.getCedulaGerente() + "',"
                        + "nombre='" + suc.getNombreGerente() + "',"
                        + "apellido='" + suc.getApellidoGerente() + "',"
                        + "direccion='" + suc.getDireccionGerente() + "',"
                        + "telefono='" + suc.getTelefonoGerente()+ "',"
                        + "estado='" + suc.getEstado() 
                        + " where codigo='" + consulta +"'");
		pstmt.executeUpdate();

        }finally{
               if( pstmt!=null )
                  pstmt.close();
        }
        conexion.disconnect();
    }

        /**
         * devuelve un objeto Sucursal
         * @param consulta
         * @return
         * @throws SQLException
         */
     public Sucursal getSucursalCodigo(String consulta) throws SQLException{
        if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

        Sucursal sucursal=new Sucursal();
        PreparedStatement pstmt=null;
	ResultSet rs=null;
  	try{
            pstmt=con.prepareStatement("select * from sucursal where codigo='"+ consulta + "'");//probando
            rs=pstmt.executeQuery();

            while(rs.next()){
                sucursal=Sucursal.load(rs);
            }
  	}finally{
 		if(rs!=null){
			rs.close();
		}
		if(pstmt!=null){
			pstmt.close();
			pstmt=null;
		}
	}
        return sucursal;
  }

   /**
    * Metodo utilizado para llenar el combo de sucursales
    * @param combo
    * @return
    */
   public JComboBox cargaComboBox(JComboBox combo){     
      return combo;
  }

}
